<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>

<body>
    <h1>创建axios实例</h1>
    <button>提交</button>


    <script>
        const oBtn = document.querySelector("button")
        //创建一个axios实例，并配置这个实例
        const myAxios = axios.create({
            //配置所有分支的公共属性
            baseURL: "/", //配置公共路径
            timeout: 10000, //配置超时时间
            headers: {} //配置请求头文件
        })

        //给axios实例添加一个请求拦截
        //use方法接收两个回调函数作为参数，正常情况下都会进入到第一个参数，只有两种情况会进入到第二个参数：
        //—  1.use额外的配置第三个参数options，
        //—  2.同时设置多个相同类型的拦截器，如果第二个拦截器的处理出现错误，就会进入第一个的异常处理
        myAxios.interceptors.request.use(config => {
            console.log(config); //拦截到的是axios的配置文件
            console.log(config.headers.common); //  config.headers.common是axios的请求头文件
            return config //将截取的config文件放行
        }, err => {
            return Promise.reject(err.message)
        })

        oBtn.onclick = async function () {
            const result = await myAxios.get("/user", {
                params: {
                    userId: "001"
                }
            })
            console.log(result.data);
        }
    </script>
</body>

</html>